6d16e4b9b342c5c4271af6ddd42d5645adae1749,integrations/opennms-map-provisioning-adapter/src/main/java/org/opennms/netmgt/provision/MapProvisioningAdapter.java,MapProvisioningAdapter,removeEmptySubmaps,#,349

Before Change



    protected void removeEmptySubmaps() {
        Map<String,List<Csubmap>> submaps = m_mapsAdapterConfig.getsubMaps();
        Iterator<String> ite = submaps.keySet().iterator();
        while (ite.hasNext()) {
            String mapName = ite.next();
            Iterator<Csubmap> sub_ite = submaps.get(mapName).iterator();
            while (sub_ite.hasNext()) {
                Csubmap csubmap = sub_ite.next();
                if (csubmap.getAddwithoutelements()) continue;
                OnmsMap onmsSubMap = getSuitableMap(csubmap.getName());
                if (onmsSubMap.isNew()) continue;
                if (onmsSubMap.getMapElements().size() == 0) {
                    OnmsMap onmsMap = getSuitableMap(mapName);
                    OnmsMapElement mapElement = 
                        new OnmsMapElement(onmsMap,onmsSubMap.getId(),OnmsMapElement.MAP_TYPE,csubmap.getLabel(),csubmap.getIcon(),csubmap.getX(),csubmap.getY());
                    m_onmsMapElementDao.delete(mapElement);
                    m_onmsMapElementDao.flush();
                    onmsMap.setLastModifiedTime(new Date());

After Change


    }

    protected void removeEmptySubmap(OnmsMap submap) {
        log().debug("removeEmptySubmap: verify delete map element which correspond to empty submap: " + submap.getName());
        Map<String,List<Csubmap>> submaps = m_mapsAdapterConfig.getsubMaps();
        for (String mapName : submaps.keySet()) {
            for (Csubmap csubmap : submaps.get(mapName)) {
                if (csubmap.getName().equals(submap.getName())) {
                    if (csubmap.getAddwithoutelements()) continue;
                    log().debug("removeEmptySubmap: delete from container map: '" + mapName +"' empty submap '" + submap.getName() );
                    OnmsMap onmsMap = getSuitableMap(mapName);
                    Integer mapid = onmsMap.getId();
                    OnmsMapElement mapElement = m_onmsMapElementDao.findMapElement(submap.getId(), OnmsMapElement.MAP_TYPE, onmsMap);
                    if (mapElement != null) {
                        m_onmsMapElementDao.delete(mapElement);
                        m_onmsMapElementDao.flush();
                        onmsMap = m_onmsMapDao.findMapById(mapid);
                        onmsMap.setLastModifiedTime(new Date());
                        m_onmsMapDao.update(onmsMap);
                        m_onmsMapDao.flush();